Call centers and other types of call processing systems are evolving into customer contact centers handling service requests arriving over a variety of media. Such contact centers typically handle more than just incoming real-time voice calls. For example, these customer contact centers may handle other real-time service requests, such as video calls and multimedia calls, as well as non-real-time service requests, such as e-mail, fax, and voice messages. Conventional private branch exchanges (PBXs) and other types of call processing switches typically provide methods of handling calls through one or more automatic call distributor (ACD) queues, but generally do not utilize their ACDs to handle service requests other than calls.
As an example, an application external to an ACD may require identification of an available attendant in an ACD environment in which attendants handle a variety of different types of real-time and non-real-time service requests. For real-time voice calls, the ACD performs the attendant selection for handling of the next incoming call. However, non-voice service requests, which do not come through the ACD, must also identify an available attendant. An application external to the ACD generally cannot perform such selection for two reasons: (1) the application is unaware of the attendant's state, and (2) even if the application knew the state, there would be contention between the application and the ACD. Some have attempted to solve this problem by allowing the ACD to perform the attendant selection. This is implemented by placing a large number of telephones coupled to the switch in a "closet," and utilizing those closeted telephones to place calls to the ACD via a computer-telephony integration (CTI) application. Such an arrangement allows a CTI application to enhance the functionality of a conventional PBX by using the telephony model. However, this arrangement is expensive due to the cost of the telephones, the corresponding switch port cards and other supporting hardware, and generally consumes substantial switch resources such as, for example, time slots, tone generators and tone detectors. These switch resources are then unavailable for use in processing voice calls and other real-time service requests.